package API;

public class Java03 {
    public static void main(String[] args) {
        //String 的注意事项
        //1、String类的对象是不可变的对象
        String name = "黑马";
        name += "程序员";
        name += "波妞";
        System.out.println(name);
        //注意：String是不可变的对象的含义：只要是以“”方式出现的字符串对象，会在堆内存中的字符串常量池中储存
        //但是，在拼接字符串之后又会产生一个新的字符串对象，但之前“黑马”的字符串对象确实是没有改变的
        //2、字符串字面量和new出来的区别，只要是以”“方式写出的对象，会纯存到字符串常量池中，且相同内容的字符串只储存一份
        //但是，通过new方式创建的字符串对象，每new一次，都会产生一个新的对象放在堆内存中
        //通过”“定义字符串内存原理
        String s1= "abc";
        String s2 = "abc";
        System.out.println(s1 == s2);
        //通过new构造器得到字符串对象
        char[] chars = new char[]{'a','b','c'};
        String s3 = new String(chars);
        String s4 = new String(chars);
        System.out.println(s3 == s4);
    }
}
